/*
 * RPrApp.h
 *
 *  Created on: May 26, 2012
 *      Author: kobe
 */

#ifndef RPRAPP_H_
#define RPRAPP_H_

#include "Rule.h"

class R_PrApp: public Rule {
public:
	R_PrApp(Agent*, Proposition*, Proposition*);
	R_PrApp(Agent*, Proposition*, Proposition*, bool);
	virtual ~R_PrApp();
	std::string toString();
	std::vector<Sequent*> run(Sequent*);
	std::string toLatex();
	RuleType getRuleType();
private:
	Agent* mAgent;
	Proposition* mProp;
	Proposition* mPropPrime;
	Context* search(Context*);
	bool checkLoop(Context*, Proposition*);
	bool mIsSimplified;
};

#endif /* RPRAPP_H_ */
